package com.wonders.hisdoctor.station.project.medicine.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.wonders.his.common.utils.validator.group.PrimaryGroup;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * @author 张澎_9970
 * @date 2021/1/21 11:00 星期四
 * @desc: 药品字典_VO
 */
@ApiModel("药品字典_VO")
@Accessors(chain = true)
@Data
@ToString
public class DrugDictVo implements Serializable {

    private static final long serialVersionUID = -6298742910882865852L;

    /** `主键` db_field: DRUG_CODE; desc: 药品代码：药品名（含剂型）的唯一标识，与药品规格一起构成一种药品（含规格）的标识 */
    @ApiModelProperty("药品代码：药品名（含剂型）的唯一标识，与药品规格一起构成一种药品（含规格）的标识")
    @NotNull(message = "药品代码：药品名（含剂型）的唯一标识，与药品规格一起构成一种药品（含规格）的标识不能为空", groups = PrimaryGroup.class)
    @TableField("DRUG_CODE")
    private String drugCode;

    /** db_field: DRUG_NAME; desc: 药品名称：药品的标准名称 */
    @ApiModelProperty("药品名称：药品的标准名称")
    @TableField("DRUG_NAME")
    private String drugName;

    /** `主键` db_field: DRUG_SPEC; desc: 规格：反映药品的含量信息，如25mg */
    @ApiModelProperty("规格：反映药品的含量信息，如25mg")
    @NotNull(message = "规格：反映药品的含量信息，如25mg不能为空", groups = PrimaryGroup.class)
    @TableField("DRUG_SPEC")
    private String drugSpec;

    /** db_field: UNITS; desc: 单位：对应剂型及规格的最小单位，如片、支等，使用规范名称，见4.32计量单位字典 */
    @ApiModelProperty("单位：对应剂型及规格的最小单位，如片、支等，使用规范名称，见4.32计量单位字典")
    @TableField("UNITS")
    private String units;

    /** db_field: DRUG_FORM; desc: 剂型：如针剂、片剂等，使用规范描述，见剂型字典 */
    @ApiModelProperty("剂型：如针剂、片剂等，使用规范描述，见剂型字典")
    @TableField("DRUG_FORM")
    private String drugForm;

    /** db_field: TOXI_PROPERTY; desc: 毒理分类：按药品的毒理分类，如普通、毒麻、精神等，使用规范名称，本系统定义，见毒理字典 */
    @ApiModelProperty("毒理分类：按药品的毒理分类，如普通、毒麻、精神等，使用规范名称，本系统定义，见毒理字典")
    @TableField("TOXI_PROPERTY")
    private String toxiProperty;

    /** db_field: DOSE_PER_UNIT; desc: 最小单位剂量：每一最小不可分包装单位所含剂量，如每片、每支的剂量 */
    @ApiModelProperty("最小单位剂量：每一最小不可分包装单位所含剂量，如每片、每支的剂量")
    @TableField("DOSE_PER_UNIT")
    private BigDecimal dosePerUnit;

    /** db_field: DOSE_UNITS; desc: 剂量单位：剂量的单位，如mg、ml等 */
    @ApiModelProperty("剂量单位：剂量的单位，如mg、ml等")
    @TableField("DOSE_UNITS")
    private String doseUnits;

    /** `主键` db_field: DRUG_INDICATOR; desc: 药品类别标志：反映是否药品及何类药品：1-药品 2-中草药 3-原料 4-化学试剂 5-敷料 9-其它 */
    @ApiModelProperty("药品类别标志：反映是否药品及何类药品：1-药品 2-中草药 3-原料 4-化学试剂 5-敷料 9-其它")
    @NotNull(message = "药品类别标志：反映是否药品及何类药品：1-药品 2-中草药 3-原料 4-化学试剂 5-敷料 9-其它不能为空", groups = PrimaryGroup.class)
    @TableField("DRUG_INDICATOR")
    private Integer drugIndicator;

    /** db_field: INPUT_CODE; desc: 输入码 */
    @ApiModelProperty("输入码")
    @TableField("INPUT_CODE")
    private String inputCode;

    /** db_field: ADMINISTRATION; desc: ADMINISTRATION */
    @ApiModelProperty("ADMINISTRATION")
    @TableField("ADMINISTRATION")
    private String administration;

    /** db_field: FREQUENCY; desc: FREQUENCY */
    @ApiModelProperty("FREQUENCY")
    @TableField("FREQUENCY")
    private String frequency;

    /** db_field: NOTES; desc: NOTES */
    @ApiModelProperty("NOTES")
    @TableField("NOTES")
    private String notes;

    /** db_field: PER_AMOUNT; desc: PER_AMOUNT */
    @ApiModelProperty("PER_AMOUNT")
    @TableField("PER_AMOUNT")
    private BigDecimal perAmount;

    /** db_field: MEMOS; desc: MEMOS */
    @ApiModelProperty("MEMOS")
    @TableField("MEMOS")
    private String memos;

    /** db_field: STANDARD_CODE; desc: STANDARD_CODE */
    @ApiModelProperty("STANDARD_CODE")
    @TableField("STANDARD_CODE")
    private String standardCode;

    /** db_field: CHECK_DAYS; desc: CHECK_DAYS */
    @ApiModelProperty("CHECK_DAYS")
    @TableField("CHECK_DAYS")
    private Integer checkDays;

}